TPTP Problem File: DAT162^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : DAT162^1 : TPTP v8.2.0. Released v7.0.0.
% Domain   : Data Structures
% Problem  : Hamming stream 305
% Version  : [Bla16] axioms : Especial.
% English  :

% Refs     : [Loc10] Lochbihler (2010), Coinductive
%          : [RB15]  Reynolds & Blanchette (2015), A Decision Procedure for
%          : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source   : [Bla16]
% Names    : hamming_stream__305.p [Bla16]

% Status   : Theorem
% Rating   : 0.00 v7.5.0, 1.00 v7.3.0, 0.67 v7.2.0, 0.50 v7.1.0
% Syntax   : Number of formulae    :  330 (  77 unt;  50 typ;   0 def)
%            Number of atoms       :  845 ( 181 equ;   0 cnn)
%            Maximal formula atoms :   13 (   3 avg)
%            Number of connectives : 3236 ( 117   ~;  36   |;  52   &;2589   @)
%                                         (   0 <=>; 442  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   17 (   8 avg)
%            Number of types       :    2 (   1 usr)
%            Number of type conns  :  137 ( 137   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   50 (  49 usr;   5 con; 0-4 aty)
%            Number of variables   :  855 (  25   ^; 751   !;  40   ?; 855   :)
%                                         (  39  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2016-07-13 14:43:25.429
%------------------------------------------------------------------------------
%----Could-be-implicit typings (4)
thf(ty_t_Coinductive__List_Ollist,type,
    coinductive_llist: $tType > $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

thf(ty_t_Nat_Onat,type,
    nat: $tType ).

thf(ty_t_itself,type,
    itself: $tType > $tType ).

%----Explicit typings (46)
thf(sy_cl_HOL_Otype,type,
    type: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Odvd,type,
    dvd: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Oone,type,
    one: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Oord,type,
    ord: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Oorder,type,
    order: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_GCD_Osemiring__gcd,type,
    semiring_gcd: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Ono__bot,type,
    no_bot: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Ono__top,type,
    no_top: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Omonoid__mult,type,
    monoid_mult: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Olinorder,type,
    linorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Opreorder,type,
    preorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Owellorder,type,
    wellorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Osemigroup__mult,type,
    semigroup_mult: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Odense__order,type,
    dense_order: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Ocomm__semiring__1,type,
    comm_semiring_1: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__idom,type,
    linordered_idom: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Ocomm__monoid__mult,type,
    comm_monoid_mult: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Oalgebraic__semidom,type,
    algebraic_semidom: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Oab__semigroup__mult,type,
    ab_semigroup_mult: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Odense__linorder,type,
    dense_linorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__semidom,type,
    linordered_semidom: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Oldistinct,type,
    coindu351974385stinct: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Olfinite,type,
    coinductive_lfinite: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Ollist_OLNil,type,
    coinductive_LNil: 
      !>[A: $tType] : ( coinductive_llist @ A ) ).

thf(sy_c_Coinductive__List_Ollist_Olnull,type,
    coinductive_lnull: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Ollist_Olset,type,
    coinductive_lset: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( set @ A ) ) ).

thf(sy_c_Coinductive__List_Olmember,type,
    coinductive_lmember: 
      !>[A: $tType] : ( A > ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Olsetp,type,
    coinductive_lsetp: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > A > $o ) ).

thf(sy_c_Coinductive__List_Oord__class_Olsorted,type,
    coindu63249387sorted: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Groups_Oone__class_Oone,type,
    one_one: 
      !>[A: $tType] : A ).

thf(sy_c_Groups_Otimes__class_Otimes,type,
    times_times: 
      !>[A: $tType] : ( A > A > A ) ).

thf(sy_c_Hamming__Stream__Mirabelle__rwekfkwckg_Ohamming,type,
    hammin2015774020amming: coinductive_llist @ nat ).

thf(sy_c_Hamming__Stream__Mirabelle__rwekfkwckg_Oord_Olmerge,type,
    hammin1328233080lmerge: 
      !>[A: $tType] : ( ( A > A > $o ) > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Hamming__Stream__Mirabelle__rwekfkwckg_Oord__class_Olmerge,type,
    hammin1138290136lmerge: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Hamming__Stream__Mirabelle__rwekfkwckg_Osmooth,type,
    hammin1195055315smooth: nat > $o ).

thf(sy_c_Orderings_Oord__class_Oless,type,
    ord_less: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Orderings_Oord__class_Oless__eq,type,
    ord_less_eq: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Primes_Oprime,type,
    prime: nat > $o ).

thf(sy_c_Pure_Otype,type,
    type2: 
      !>[A: $tType] : ( itself @ A ) ).

thf(sy_c_Rings_Odvd__class_Odvd,type,
    dvd_dvd: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

thf(sy_v_n,type,
    n: nat ).

thf(sy_v_n_H____,type,
    n2: nat ).

thf(sy_v_na____,type,
    na: nat ).

thf(sy_v_p____,type,
    p: nat ).

%----Relevant facts (253)
thf(fact_0__092_060open_062smooth_An_H_092_060close_062,axiom,
    hammin1195055315smooth @ n2 ).

% \<open>smooth n'\<close>
thf(fact_1__092_060open_062n_H_A_060_An_092_060close_062,axiom,
    ord_less @ nat @ n2 @ na ).

% \<open>n' < n\<close>
thf(fact_2_less_OIH,axiom,
    ! [Y: nat] :
      ( ( ord_less @ nat @ Y @ na )
     => ( ( hammin1195055315smooth @ Y )
       => ( member @ nat @ Y @ ( coinductive_lset @ nat @ hammin2015774020amming ) ) ) ) ).

% less.IH
thf(fact_3_n,axiom,
    ( na
    = ( times_times @ nat @ p @ n2 ) ) ).

% n
thf(fact_4_hamming__eq__LNil__iff,axiom,
    ( hammin2015774020amming
   != ( coinductive_LNil @ nat ) ) ).

% hamming_eq_LNil_iff
thf(fact_5_ldistinct__hamming,axiom,
    coindu351974385stinct @ nat @ hammin2015774020amming ).

% ldistinct_hamming
thf(fact_6_lsorted__hamming,axiom,
    coindu63249387sorted @ nat @ hammin2015774020amming ).

% lsorted_hamming
thf(fact_7_True,axiom,
    ord_less @ nat @ ( one_one @ nat ) @ na ).

% True
thf(fact_8_lnull__hamming,axiom,
    ~ ( coinductive_lnull @ nat @ hammin2015774020amming ) ).

% lnull_hamming
thf(fact_9_lset__lmember,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A] :
      ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
      = ( coinductive_lmember @ A @ X @ Xs ) ) ).

% lset_lmember
thf(fact_10_lfinite__hamming,axiom,
    ~ ( coinductive_lfinite @ nat @ hammin2015774020amming ) ).

% lfinite_hamming
thf(fact_11_in__lset__lmergeD,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [X: A,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ( member @ A @ X @ ( coinductive_lset @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) )
         => ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
            | ( member @ A @ X @ ( coinductive_lset @ A @ Ys ) ) ) ) ) ).

% in_lset_lmergeD
thf(fact_12_ord_Oin__lset__lmergeD,axiom,
    ! [A: $tType,X: A,Less: A > A > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( member @ A @ X @ ( coinductive_lset @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) ) )
     => ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
        | ( member @ A @ X @ ( coinductive_lset @ A @ Ys ) ) ) ) ).

% ord.in_lset_lmergeD
thf(fact_13_Coinductive__List_Olset__into__lsetp,axiom,
    ! [A: $tType,X: A,Xs: coinductive_llist @ A] :
      ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
     => ( coinductive_lsetp @ A @ Xs @ X ) ) ).

% Coinductive_List.lset_into_lsetp
thf(fact_14_assms,axiom,
    hammin1195055315smooth @ n ).

% assms
thf(fact_15_less_Oprems,axiom,
    hammin1195055315smooth @ na ).

% less.prems
thf(fact_16__092_060open_062_092_060And_062thesis_O_A_I_092_060And_062n_H_O_An_A_061_Ap_A_K_An_H_A_092_060Longrightarrow_062_Athesis_J_A_092_060Longrightarrow_062_Athesis_092_060close_062,axiom,
    ~ ! [N: nat] :
        ( na
       != ( times_times @ nat @ p @ N ) ) ).

% \<open>\<And>thesis. (\<And>n'. n = p * n' \<Longrightarrow> thesis) \<Longrightarrow> thesis\<close>
thf(fact_17__092_060open_062prime_Ap_092_060close_062,axiom,
    prime @ p ).

% \<open>prime p\<close>
thf(fact_18_lfinite__code_I1_J,axiom,
    ! [A: $tType] : ( coinductive_lfinite @ A @ ( coinductive_LNil @ A ) ) ).

% lfinite_code(1)
thf(fact_19_lmerge_Odisc__iff_I2_J,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ( ~ ( coinductive_lnull @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) )
          = ( ~ ( coinductive_lnull @ A @ Xs )
            & ~ ( coinductive_lnull @ A @ Ys ) ) ) ) ).

% lmerge.disc_iff(2)
thf(fact_20_lnull__lmerge,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ( coinductive_lnull @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) )
          = ( ( coinductive_lnull @ A @ Xs )
            | ( coinductive_lnull @ A @ Ys ) ) ) ) ).

% lnull_lmerge
thf(fact_21_lmerge__LNil_I2_J,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A] :
          ( ( hammin1138290136lmerge @ A @ Xs @ ( coinductive_LNil @ A ) )
          = ( coinductive_LNil @ A ) ) ) ).

% lmerge_LNil(2)
thf(fact_22_lmerge__LNil_I1_J,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [Ys: coinductive_llist @ A] :
          ( ( hammin1138290136lmerge @ A @ ( coinductive_LNil @ A ) @ Ys )
          = ( coinductive_LNil @ A ) ) ) ).

% lmerge_LNil(1)
thf(fact_23_lsorted__code_I1_J,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ( coindu63249387sorted @ A @ ( coinductive_LNil @ A ) ) ) ).

% lsorted_code(1)
thf(fact_24_ldistinct__LNil__code,axiom,
    ! [A: $tType] : ( coindu351974385stinct @ A @ ( coinductive_LNil @ A ) ) ).

% ldistinct_LNil_code
thf(fact_25_smooth__times,axiom,
    ! [X: nat,Y: nat] :
      ( ( hammin1195055315smooth @ ( times_times @ nat @ X @ Y ) )
      = ( ( hammin1195055315smooth @ X )
        & ( hammin1195055315smooth @ Y ) ) ) ).

% smooth_times
thf(fact_26__092_060open_062p_Advd_An_092_060close_062,axiom,
    dvd_dvd @ nat @ p @ na ).

% \<open>p dvd n\<close>
thf(fact_27_llist_Odisc_I1_J,axiom,
    ! [A: $tType] : ( coinductive_lnull @ A @ ( coinductive_LNil @ A ) ) ).

% llist.disc(1)
thf(fact_28_llist_OdiscI_I1_J,axiom,
    ! [A: $tType,Llist: coinductive_llist @ A] :
      ( ( Llist
        = ( coinductive_LNil @ A ) )
     => ( coinductive_lnull @ A @ Llist ) ) ).

% llist.discI(1)
thf(fact_29_lmember__code_I1_J,axiom,
    ! [A: $tType,X: A] :
      ~ ( coinductive_lmember @ A @ X @ ( coinductive_LNil @ A ) ) ).

% lmember_code(1)
thf(fact_30_llist_Ocollapse_I1_J,axiom,
    ! [A: $tType,Llist: coinductive_llist @ A] :
      ( ( coinductive_lnull @ A @ Llist )
     => ( Llist
        = ( coinductive_LNil @ A ) ) ) ).

% llist.collapse(1)
thf(fact_31_ord_Olmerge_Octr_I1_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Less: A > A > $o] :
      ( ( ( coinductive_lnull @ A @ Xs )
        | ( coinductive_lnull @ A @ Ys ) )
     => ( ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys )
        = ( coinductive_LNil @ A ) ) ) ).

% ord.lmerge.ctr(1)
thf(fact_32_ord_Olmerge_Odisc_I2_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Less: A > A > $o] :
      ( ~ ( coinductive_lnull @ A @ Xs )
     => ( ~ ( coinductive_lnull @ A @ Ys )
       => ~ ( coinductive_lnull @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) ) ) ) ).

% ord.lmerge.disc(2)
thf(fact_33_ord_Olmerge_Odisc_I1_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Less: A > A > $o] :
      ( ( ( coinductive_lnull @ A @ Xs )
        | ( coinductive_lnull @ A @ Ys ) )
     => ( coinductive_lnull @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) ) ) ).

% ord.lmerge.disc(1)
thf(fact_34_ord_Olmerge__LNil_I2_J,axiom,
    ! [A: $tType,Less: A > A > $o,Xs: coinductive_llist @ A] :
      ( ( hammin1328233080lmerge @ A @ Less @ Xs @ ( coinductive_LNil @ A ) )
      = ( coinductive_LNil @ A ) ) ).

% ord.lmerge_LNil(2)
thf(fact_35_ord_Olmerge__LNil_I1_J,axiom,
    ! [A: $tType,Less: A > A > $o,Ys: coinductive_llist @ A] :
      ( ( hammin1328233080lmerge @ A @ Less @ ( coinductive_LNil @ A ) @ Ys )
      = ( coinductive_LNil @ A ) ) ).

% ord.lmerge_LNil(1)
thf(fact_36_ord_Olmerge_Odisc__iff_I2_J,axiom,
    ! [A: $tType,Less: A > A > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( ~ ( coinductive_lnull @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) ) )
      = ( ~ ( coinductive_lnull @ A @ Xs )
        & ~ ( coinductive_lnull @ A @ Ys ) ) ) ).

% ord.lmerge.disc_iff(2)
thf(fact_37_lmerge_Octr_I1_J,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ( ( coinductive_lnull @ A @ Xs )
            | ( coinductive_lnull @ A @ Ys ) )
         => ( ( hammin1138290136lmerge @ A @ Xs @ Ys )
            = ( coinductive_LNil @ A ) ) ) ) ).

% lmerge.ctr(1)
thf(fact_38_lmerge_Odisc_I2_J,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ~ ( coinductive_lnull @ A @ Xs )
         => ( ~ ( coinductive_lnull @ A @ Ys )
           => ~ ( coinductive_lnull @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ).

% lmerge.disc(2)
thf(fact_39_lmerge_Odisc_I1_J,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ( ( coinductive_lnull @ A @ Xs )
            | ( coinductive_lnull @ A @ Ys ) )
         => ( coinductive_lnull @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ).

% lmerge.disc(1)
thf(fact_40_lzip_Oexhaust,axiom,
    ! [A: $tType,B: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ B] :
      ( ~ ( ( coinductive_lnull @ A @ Xs )
          | ( coinductive_lnull @ B @ Ys ) )
     => ~ ( ~ ( coinductive_lnull @ A @ Xs )
         => ( coinductive_lnull @ B @ Ys ) ) ) ).

% lzip.exhaust
thf(fact_41_ldistinct_OLNil,axiom,
    ! [A: $tType] : ( coindu351974385stinct @ A @ ( coinductive_LNil @ A ) ) ).

% ldistinct.LNil
thf(fact_42_lappend_Oexhaust,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( ( coinductive_lnull @ A @ Xs )
       => ~ ( coinductive_lnull @ A @ Ys ) )
     => ( ~ ( coinductive_lnull @ A @ Xs )
        | ~ ( coinductive_lnull @ A @ Ys ) ) ) ).

% lappend.exhaust
thf(fact_43_lnull__def,axiom,
    ! [A: $tType] :
      ( ( coinductive_lnull @ A )
      = ( ^ [Llist2: coinductive_llist @ A] :
            ( Llist2
            = ( coinductive_LNil @ A ) ) ) ) ).

% lnull_def
thf(fact_44_mem__Collect__eq,axiom,
    ! [A: $tType,A2: A,P: A > $o] :
      ( ( member @ A @ A2 @ ( collect @ A @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_45_Collect__mem__eq,axiom,
    ! [A: $tType,A3: set @ A] :
      ( ( collect @ A
        @ ^ [X2: A] : ( member @ A @ X2 @ A3 ) )
      = A3 ) ).

% Collect_mem_eq
thf(fact_46_Collect__cong,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X3: A] :
          ( ( P @ X3 )
          = ( Q @ X3 ) )
     => ( ( collect @ A @ P )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_47_lnull__imp__lfinite,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ( coinductive_lnull @ A @ Xs )
     => ( coinductive_lfinite @ A @ Xs ) ) ).

% lnull_imp_lfinite
thf(fact_48_lfinite__LNil,axiom,
    ! [A: $tType] : ( coinductive_lfinite @ A @ ( coinductive_LNil @ A ) ) ).

% lfinite_LNil
thf(fact_49_LNil,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ( coindu63249387sorted @ A @ ( coinductive_LNil @ A ) ) ) ).

% LNil
thf(fact_50_ord_Olnull__lmerge,axiom,
    ! [A: $tType,Less: A > A > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lnull @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) )
      = ( ( coinductive_lnull @ A @ Xs )
        | ( coinductive_lnull @ A @ Ys ) ) ) ).

% ord.lnull_lmerge
thf(fact_51_ord_Olmerge_Oexhaust,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ~ ( ( coinductive_lnull @ A @ Xs )
          | ( coinductive_lnull @ A @ Ys ) )
     => ~ ( ~ ( coinductive_lnull @ A @ Xs )
         => ( coinductive_lnull @ A @ Ys ) ) ) ).

% ord.lmerge.exhaust
thf(fact_52_ord_Olfinite__lmergeD,axiom,
    ! [A: $tType,Less: A > A > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lfinite @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) )
     => ( ( coinductive_lfinite @ A @ Xs )
        | ( coinductive_lfinite @ A @ Ys ) ) ) ).

% ord.lfinite_lmergeD
thf(fact_53_ord_Olfinite__lmergeI,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Less: A > A > $o] :
      ( ( coinductive_lfinite @ A @ Xs )
     => ( ( coinductive_lfinite @ A @ Ys )
       => ( coinductive_lfinite @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) ) ) ) ).

% ord.lfinite_lmergeI
thf(fact_54_ord_Olinfinite__lmerge,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A,Less: A > A > $o] :
      ( ~ ( coinductive_lfinite @ A @ Xs )
     => ( ~ ( coinductive_lfinite @ A @ Ys )
       => ~ ( coinductive_lfinite @ A @ ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys ) ) ) ) ).

% ord.linfinite_lmerge
thf(fact_55_ord_Olmerge__eq__LNil__iff,axiom,
    ! [A: $tType,Less: A > A > $o,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
      ( ( ( hammin1328233080lmerge @ A @ Less @ Xs @ Ys )
        = ( coinductive_LNil @ A ) )
      = ( ( Xs
          = ( coinductive_LNil @ A ) )
        | ( Ys
          = ( coinductive_LNil @ A ) ) ) ) ).

% ord.lmerge_eq_LNil_iff
thf(fact_56_lmerge_Oexhaust,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ~ ( ( coinductive_lnull @ A @ Xs )
              | ( coinductive_lnull @ A @ Ys ) )
         => ~ ( ~ ( coinductive_lnull @ A @ Xs )
             => ( coinductive_lnull @ A @ Ys ) ) ) ) ).

% lmerge.exhaust
thf(fact_57_lsorted__ldistinct__lset__unique,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ( coindu63249387sorted @ A @ Xs )
         => ( ( coindu351974385stinct @ A @ Xs )
           => ( ( coindu63249387sorted @ A @ Ys )
             => ( ( coindu351974385stinct @ A @ Ys )
               => ( ( ( coinductive_lset @ A @ Xs )
                    = ( coinductive_lset @ A @ Ys ) )
                 => ( Xs = Ys ) ) ) ) ) ) ) ).

% lsorted_ldistinct_lset_unique
thf(fact_58_lfinite__lmergeD,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ( coinductive_lfinite @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) )
         => ( ( coinductive_lfinite @ A @ Xs )
            | ( coinductive_lfinite @ A @ Ys ) ) ) ) ).

% lfinite_lmergeD
thf(fact_59_lfinite__lmergeI,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ( coinductive_lfinite @ A @ Xs )
         => ( ( coinductive_lfinite @ A @ Ys )
           => ( coinductive_lfinite @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ).

% lfinite_lmergeI
thf(fact_60_linfinite__lmerge,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ~ ( coinductive_lfinite @ A @ Xs )
         => ( ~ ( coinductive_lfinite @ A @ Ys )
           => ~ ( coinductive_lfinite @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ).

% linfinite_lmerge
thf(fact_61_lmerge__eq__LNil__iff,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ( ( hammin1138290136lmerge @ A @ Xs @ Ys )
            = ( coinductive_LNil @ A ) )
          = ( ( Xs
              = ( coinductive_LNil @ A ) )
            | ( Ys
              = ( coinductive_LNil @ A ) ) ) ) ) ).

% lmerge_eq_LNil_iff
thf(fact_62_lsorted__lmerge,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ( coindu63249387sorted @ A @ Xs )
         => ( ( coindu63249387sorted @ A @ Ys )
           => ( coindu63249387sorted @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ).

% lsorted_lmerge
thf(fact_63_ldistinct__lmerge,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ( coindu63249387sorted @ A @ Xs )
         => ( ( coindu63249387sorted @ A @ Ys )
           => ( ( coindu351974385stinct @ A @ Xs )
             => ( ( coindu351974385stinct @ A @ Ys )
               => ( coindu351974385stinct @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ) ) ).

% ldistinct_lmerge
thf(fact_64_lsetp__into__lset,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,X: A] :
      ( ( coinductive_lsetp @ A @ Xs @ X )
     => ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) ) ) ).

% lsetp_into_lset
thf(fact_65_nat__1__eq__mult__iff,axiom,
    ! [M: nat,N2: nat] :
      ( ( ( one_one @ nat )
        = ( times_times @ nat @ M @ N2 ) )
      = ( ( M
          = ( one_one @ nat ) )
        & ( N2
          = ( one_one @ nat ) ) ) ) ).

% nat_1_eq_mult_iff
thf(fact_66_nat__mult__eq__1__iff,axiom,
    ! [M: nat,N2: nat] :
      ( ( ( times_times @ nat @ M @ N2 )
        = ( one_one @ nat ) )
      = ( ( M
          = ( one_one @ nat ) )
        & ( N2
          = ( one_one @ nat ) ) ) ) ).

% nat_mult_eq_1_iff
thf(fact_67_mult_Oleft__neutral,axiom,
    ! [A: $tType] :
      ( ( monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ ( one_one @ A ) @ A2 )
          = A2 ) ) ).

% mult.left_neutral
thf(fact_68_mult_Oright__neutral,axiom,
    ! [A: $tType] :
      ( ( monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ A2 @ ( one_one @ A ) )
          = A2 ) ) ).

% mult.right_neutral
thf(fact_69_less__1__mult,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ! [M: A,N2: A] :
          ( ( ord_less @ A @ ( one_one @ A ) @ M )
         => ( ( ord_less @ A @ ( one_one @ A ) @ N2 )
           => ( ord_less @ A @ ( one_one @ A ) @ ( times_times @ A @ M @ N2 ) ) ) ) ) ).

% less_1_mult
thf(fact_70_nat__mult__1,axiom,
    ! [N2: nat] :
      ( ( times_times @ nat @ ( one_one @ nat ) @ N2 )
      = N2 ) ).

% nat_mult_1
thf(fact_71_nat__mult__1__right,axiom,
    ! [N2: nat] :
      ( ( times_times @ nat @ N2 @ ( one_one @ nat ) )
      = N2 ) ).

% nat_mult_1_right
thf(fact_72_semiring__normalization__rules_I12_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ A2 @ ( one_one @ A ) )
          = A2 ) ) ).

% semiring_normalization_rules(12)
thf(fact_73_semiring__normalization__rules_I11_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ ( one_one @ A ) @ A2 )
          = A2 ) ) ).

% semiring_normalization_rules(11)
thf(fact_74_comm__monoid__mult__class_Omult__1,axiom,
    ! [A: $tType] :
      ( ( comm_monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ ( one_one @ A ) @ A2 )
          = A2 ) ) ).

% comm_monoid_mult_class.mult_1
thf(fact_75__092_060open_062_092_060exists_062p_O_Aprime_Ap_A_092_060and_062_Ap_Advd_An_092_060close_062,axiom,
    ? [P2: nat] :
      ( ( prime @ P2 )
      & ( dvd_dvd @ nat @ P2 @ na ) ) ).

% \<open>\<exists>p. prime p \<and> p dvd n\<close>
thf(fact_76_nat__dvd__1__iff__1,axiom,
    ! [M: nat] :
      ( ( dvd_dvd @ nat @ M @ ( one_one @ nat ) )
      = ( M
        = ( one_one @ nat ) ) ) ).

% nat_dvd_1_iff_1
thf(fact_77_unit__prod,axiom,
    ! [A: $tType] :
      ( ( algebraic_semidom @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( dvd_dvd @ A @ A2 @ ( one_one @ A ) )
         => ( ( dvd_dvd @ A @ B2 @ ( one_one @ A ) )
           => ( dvd_dvd @ A @ ( times_times @ A @ A2 @ B2 ) @ ( one_one @ A ) ) ) ) ) ).

% unit_prod
thf(fact_78_dvd__trans,axiom,
    ! [A: $tType] :
      ( ( comm_monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( dvd_dvd @ A @ A2 @ B2 )
         => ( ( dvd_dvd @ A @ B2 @ C )
           => ( dvd_dvd @ A @ A2 @ C ) ) ) ) ).

% dvd_trans
thf(fact_79_dvd__refl,axiom,
    ! [A: $tType] :
      ( ( comm_monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A] : ( dvd_dvd @ A @ A2 @ A2 ) ) ).

% dvd_refl
thf(fact_80_dvd__antisym,axiom,
    ! [M: nat,N2: nat] :
      ( ( dvd_dvd @ nat @ M @ N2 )
     => ( ( dvd_dvd @ nat @ N2 @ M )
       => ( M = N2 ) ) ) ).

% dvd_antisym
thf(fact_81_prime__nat__dvdD,axiom,
    ! [P3: nat,N2: nat] :
      ( ( prime @ P3 )
     => ( ( dvd_dvd @ nat @ N2 @ P3 )
       => ( ( N2
            = ( one_one @ nat ) )
          | ( N2 = P3 ) ) ) ) ).

% prime_nat_dvdD
thf(fact_82_dvd__triv__right,axiom,
    ! [A: $tType] :
      ( ( comm_monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] : ( dvd_dvd @ A @ A2 @ ( times_times @ A @ B2 @ A2 ) ) ) ).

% dvd_triv_right
thf(fact_83_dvd__mult__right,axiom,
    ! [A: $tType] :
      ( ( comm_monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( dvd_dvd @ A @ ( times_times @ A @ A2 @ B2 ) @ C )
         => ( dvd_dvd @ A @ B2 @ C ) ) ) ).

% dvd_mult_right
thf(fact_84_mult__dvd__mono,axiom,
    ! [A: $tType] :
      ( ( comm_monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A,D: A] :
          ( ( dvd_dvd @ A @ A2 @ B2 )
         => ( ( dvd_dvd @ A @ C @ D )
           => ( dvd_dvd @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ D ) ) ) ) ) ).

% mult_dvd_mono
thf(fact_85_dvd__triv__left,axiom,
    ! [A: $tType] :
      ( ( comm_monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] : ( dvd_dvd @ A @ A2 @ ( times_times @ A @ A2 @ B2 ) ) ) ).

% dvd_triv_left
thf(fact_86_dvd__mult__left,axiom,
    ! [A: $tType] :
      ( ( comm_monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( dvd_dvd @ A @ ( times_times @ A @ A2 @ B2 ) @ C )
         => ( dvd_dvd @ A @ A2 @ C ) ) ) ).

% dvd_mult_left
thf(fact_87_dvd__mult2,axiom,
    ! [A: $tType] :
      ( ( comm_monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( dvd_dvd @ A @ A2 @ B2 )
         => ( dvd_dvd @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).

% dvd_mult2
thf(fact_88_dvd__mult,axiom,
    ! [A: $tType] :
      ( ( comm_monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A,C: A,B2: A] :
          ( ( dvd_dvd @ A @ A2 @ C )
         => ( dvd_dvd @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).

% dvd_mult
thf(fact_89_dvd__def,axiom,
    ! [A: $tType] :
      ( ( dvd @ A @ ( type2 @ A ) )
     => ( ( dvd_dvd @ A )
        = ( ^ [B3: A,A4: A] :
            ? [K: A] :
              ( A4
              = ( times_times @ A @ B3 @ K ) ) ) ) ) ).

% dvd_def
thf(fact_90_dvdI,axiom,
    ! [A: $tType] :
      ( ( dvd @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,K2: A] :
          ( ( A2
            = ( times_times @ A @ B2 @ K2 ) )
         => ( dvd_dvd @ A @ B2 @ A2 ) ) ) ).

% dvdI
thf(fact_91_dvdE,axiom,
    ! [A: $tType] :
      ( ( dvd @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A] :
          ( ( dvd_dvd @ A @ B2 @ A2 )
         => ~ ! [K3: A] :
                ( A2
               != ( times_times @ A @ B2 @ K3 ) ) ) ) ).

% dvdE
thf(fact_92_dvd__unit__imp__unit,axiom,
    ! [A: $tType] :
      ( ( algebraic_semidom @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( dvd_dvd @ A @ A2 @ B2 )
         => ( ( dvd_dvd @ A @ B2 @ ( one_one @ A ) )
           => ( dvd_dvd @ A @ A2 @ ( one_one @ A ) ) ) ) ) ).

% dvd_unit_imp_unit
thf(fact_93_unit__imp__dvd,axiom,
    ! [A: $tType] :
      ( ( algebraic_semidom @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A] :
          ( ( dvd_dvd @ A @ B2 @ ( one_one @ A ) )
         => ( dvd_dvd @ A @ B2 @ A2 ) ) ) ).

% unit_imp_dvd
thf(fact_94_one__dvd,axiom,
    ! [A: $tType] :
      ( ( comm_monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A] : ( dvd_dvd @ A @ ( one_one @ A ) @ A2 ) ) ).

% one_dvd
thf(fact_95_unit__mult__right__cancel,axiom,
    ! [A: $tType] :
      ( ( algebraic_semidom @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( dvd_dvd @ A @ A2 @ ( one_one @ A ) )
         => ( ( ( times_times @ A @ B2 @ A2 )
              = ( times_times @ A @ C @ A2 ) )
            = ( B2 = C ) ) ) ) ).

% unit_mult_right_cancel
thf(fact_96_unit__mult__left__cancel,axiom,
    ! [A: $tType] :
      ( ( algebraic_semidom @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( dvd_dvd @ A @ A2 @ ( one_one @ A ) )
         => ( ( ( times_times @ A @ A2 @ B2 )
              = ( times_times @ A @ A2 @ C ) )
            = ( B2 = C ) ) ) ) ).

% unit_mult_left_cancel
thf(fact_97_mult__unit__dvd__iff,axiom,
    ! [A: $tType] :
      ( ( algebraic_semidom @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,C: A] :
          ( ( dvd_dvd @ A @ B2 @ ( one_one @ A ) )
         => ( ( dvd_dvd @ A @ ( times_times @ A @ A2 @ B2 ) @ C )
            = ( dvd_dvd @ A @ A2 @ C ) ) ) ) ).

% mult_unit_dvd_iff
thf(fact_98_dvd__mult__unit__iff,axiom,
    ! [A: $tType] :
      ( ( algebraic_semidom @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,C: A] :
          ( ( dvd_dvd @ A @ B2 @ ( one_one @ A ) )
         => ( ( dvd_dvd @ A @ A2 @ ( times_times @ A @ C @ B2 ) )
            = ( dvd_dvd @ A @ A2 @ C ) ) ) ) ).

% dvd_mult_unit_iff
thf(fact_99_is__unit__mult__iff,axiom,
    ! [A: $tType] :
      ( ( algebraic_semidom @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( dvd_dvd @ A @ ( times_times @ A @ A2 @ B2 ) @ ( one_one @ A ) )
          = ( ( dvd_dvd @ A @ A2 @ ( one_one @ A ) )
            & ( dvd_dvd @ A @ B2 @ ( one_one @ A ) ) ) ) ) ).

% is_unit_mult_iff
thf(fact_100_linorder__neqE__linordered__idom,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( X != Y )
         => ( ~ ( ord_less @ A @ X @ Y )
           => ( ord_less @ A @ Y @ X ) ) ) ) ).

% linorder_neqE_linordered_idom
thf(fact_101_mult_Oleft__commute,axiom,
    ! [A: $tType] :
      ( ( ab_semigroup_mult @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,C: A] :
          ( ( times_times @ A @ B2 @ ( times_times @ A @ A2 @ C ) )
          = ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).

% mult.left_commute
thf(fact_102_mult_Ocommute,axiom,
    ! [A: $tType] :
      ( ( ab_semigroup_mult @ A @ ( type2 @ A ) )
     => ( ( times_times @ A )
        = ( ^ [A4: A,B3: A] : ( times_times @ A @ B3 @ A4 ) ) ) ) ).

% mult.commute
thf(fact_103_mult_Oassoc,axiom,
    ! [A: $tType] :
      ( ( semigroup_mult @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( times_times @ A @ ( times_times @ A @ A2 @ B2 ) @ C )
          = ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).

% mult.assoc
thf(fact_104_semiring__normalization__rules_I7_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type2 @ A ) )
     => ( ( times_times @ A )
        = ( ^ [A4: A,B3: A] : ( times_times @ A @ B3 @ A4 ) ) ) ) ).

% semiring_normalization_rules(7)
thf(fact_105_semiring__normalization__rules_I13_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type2 @ A ) )
     => ! [Lx: A,Ly: A,Rx: A,Ry: A] :
          ( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ ( times_times @ A @ Rx @ Ry ) )
          = ( times_times @ A @ ( times_times @ A @ Lx @ Rx ) @ ( times_times @ A @ Ly @ Ry ) ) ) ) ).

% semiring_normalization_rules(13)
thf(fact_106_semiring__normalization__rules_I14_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type2 @ A ) )
     => ! [Lx: A,Ly: A,Rx: A,Ry: A] :
          ( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ ( times_times @ A @ Rx @ Ry ) )
          = ( times_times @ A @ Lx @ ( times_times @ A @ Ly @ ( times_times @ A @ Rx @ Ry ) ) ) ) ) ).

% semiring_normalization_rules(14)
thf(fact_107_semiring__normalization__rules_I15_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type2 @ A ) )
     => ! [Lx: A,Ly: A,Rx: A,Ry: A] :
          ( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ ( times_times @ A @ Rx @ Ry ) )
          = ( times_times @ A @ Rx @ ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ Ry ) ) ) ) ).

% semiring_normalization_rules(15)
thf(fact_108_semiring__normalization__rules_I16_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type2 @ A ) )
     => ! [Lx: A,Ly: A,Rx: A] :
          ( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ Rx )
          = ( times_times @ A @ ( times_times @ A @ Lx @ Rx ) @ Ly ) ) ) ).

% semiring_normalization_rules(16)
thf(fact_109_semiring__normalization__rules_I17_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type2 @ A ) )
     => ! [Lx: A,Ly: A,Rx: A] :
          ( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ Rx )
          = ( times_times @ A @ Lx @ ( times_times @ A @ Ly @ Rx ) ) ) ) ).

% semiring_normalization_rules(17)
thf(fact_110_semiring__normalization__rules_I18_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type2 @ A ) )
     => ! [Lx: A,Rx: A,Ry: A] :
          ( ( times_times @ A @ Lx @ ( times_times @ A @ Rx @ Ry ) )
          = ( times_times @ A @ ( times_times @ A @ Lx @ Rx ) @ Ry ) ) ) ).

% semiring_normalization_rules(18)
thf(fact_111_semiring__normalization__rules_I19_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type2 @ A ) )
     => ! [Lx: A,Rx: A,Ry: A] :
          ( ( times_times @ A @ Lx @ ( times_times @ A @ Rx @ Ry ) )
          = ( times_times @ A @ Rx @ ( times_times @ A @ Lx @ Ry ) ) ) ) ).

% semiring_normalization_rules(19)
thf(fact_112_ab__semigroup__mult__class_Omult__ac_I1_J,axiom,
    ! [A: $tType] :
      ( ( ab_semigroup_mult @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( times_times @ A @ ( times_times @ A @ A2 @ B2 ) @ C )
          = ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C ) ) ) ) ).

% ab_semigroup_mult_class.mult_ac(1)
thf(fact_113_one__reorient,axiom,
    ! [A: $tType] :
      ( ( one @ A @ ( type2 @ A ) )
     => ! [X: A] :
          ( ( ( one_one @ A )
            = X )
          = ( X
            = ( one_one @ A ) ) ) ) ).

% one_reorient
thf(fact_114_infinite__descent__measure,axiom,
    ! [A: $tType,P: A > $o,V: A > nat,X: A] :
      ( ! [X3: A] :
          ( ~ ( P @ X3 )
         => ? [Y2: A] :
              ( ( ord_less @ nat @ ( V @ Y2 ) @ ( V @ X3 ) )
              & ~ ( P @ Y2 ) ) )
     => ( P @ X ) ) ).

% infinite_descent_measure
thf(fact_115_measure__induct__rule,axiom,
    ! [A: $tType,F: A > nat,P: A > $o,A2: A] :
      ( ! [X3: A] :
          ( ! [Y2: A] :
              ( ( ord_less @ nat @ ( F @ Y2 ) @ ( F @ X3 ) )
             => ( P @ Y2 ) )
         => ( P @ X3 ) )
     => ( P @ A2 ) ) ).

% measure_induct_rule
thf(fact_116_linorder__neqE__nat,axiom,
    ! [X: nat,Y: nat] :
      ( ( X != Y )
     => ( ~ ( ord_less @ nat @ X @ Y )
       => ( ord_less @ nat @ Y @ X ) ) ) ).

% linorder_neqE_nat
thf(fact_117_infinite__descent,axiom,
    ! [P: nat > $o,N2: nat] :
      ( ! [N3: nat] :
          ( ~ ( P @ N3 )
         => ? [M2: nat] :
              ( ( ord_less @ nat @ M2 @ N3 )
              & ~ ( P @ M2 ) ) )
     => ( P @ N2 ) ) ).

% infinite_descent
thf(fact_118_nat__less__induct,axiom,
    ! [P: nat > $o,N2: nat] :
      ( ! [N3: nat] :
          ( ! [M2: nat] :
              ( ( ord_less @ nat @ M2 @ N3 )
             => ( P @ M2 ) )
         => ( P @ N3 ) )
     => ( P @ N2 ) ) ).

% nat_less_induct
thf(fact_119_less__irrefl__nat,axiom,
    ! [N2: nat] :
      ~ ( ord_less @ nat @ N2 @ N2 ) ).

% less_irrefl_nat
thf(fact_120_measure__induct,axiom,
    ! [A: $tType,F: A > nat,P: A > $o,A2: A] :
      ( ! [X3: A] :
          ( ! [Y2: A] :
              ( ( ord_less @ nat @ ( F @ Y2 ) @ ( F @ X3 ) )
             => ( P @ Y2 ) )
         => ( P @ X3 ) )
     => ( P @ A2 ) ) ).

% measure_induct
thf(fact_121_less__not__refl3,axiom,
    ! [S: nat,T: nat] :
      ( ( ord_less @ nat @ S @ T )
     => ( S != T ) ) ).

% less_not_refl3
thf(fact_122_less__not__refl2,axiom,
    ! [N2: nat,M: nat] :
      ( ( ord_less @ nat @ N2 @ M )
     => ( M != N2 ) ) ).

% less_not_refl2
thf(fact_123_less__not__refl,axiom,
    ! [N2: nat] :
      ~ ( ord_less @ nat @ N2 @ N2 ) ).

% less_not_refl
thf(fact_124_nat__neq__iff,axiom,
    ! [M: nat,N2: nat] :
      ( ( M != N2 )
      = ( ( ord_less @ nat @ M @ N2 )
        | ( ord_less @ nat @ N2 @ M ) ) ) ).

% nat_neq_iff
thf(fact_125_mult_Ocomm__neutral,axiom,
    ! [A: $tType] :
      ( ( comm_monoid_mult @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ A2 @ ( one_one @ A ) )
          = A2 ) ) ).

% mult.comm_neutral
thf(fact_126_prime__dvd__mult__eq__nat,axiom,
    ! [P3: nat,M: nat,N2: nat] :
      ( ( prime @ P3 )
     => ( ( dvd_dvd @ nat @ P3 @ ( times_times @ nat @ M @ N2 ) )
        = ( ( dvd_dvd @ nat @ P3 @ M )
          | ( dvd_dvd @ nat @ P3 @ N2 ) ) ) ) ).

% prime_dvd_mult_eq_nat
thf(fact_127_prime__def,axiom,
    ( prime
    = ( ^ [P4: nat] :
          ( ( ord_less @ nat @ ( one_one @ nat ) @ P4 )
          & ! [M3: nat] :
              ( ( dvd_dvd @ nat @ M3 @ P4 )
             => ( ( M3
                  = ( one_one @ nat ) )
                | ( M3 = P4 ) ) ) ) ) ) ).

% prime_def
thf(fact_128_not__prime__eq__prod__nat,axiom,
    ! [N2: nat] :
      ( ( ord_less @ nat @ ( one_one @ nat ) @ N2 )
     => ( ~ ( prime @ N2 )
       => ? [M4: nat,K3: nat] :
            ( ( N2
              = ( times_times @ nat @ M4 @ K3 ) )
            & ( ord_less @ nat @ ( one_one @ nat ) @ M4 )
            & ( ord_less @ nat @ M4 @ N2 )
            & ( ord_less @ nat @ ( one_one @ nat ) @ K3 )
            & ( ord_less @ nat @ K3 @ N2 ) ) ) ) ).

% not_prime_eq_prod_nat
thf(fact_129_prime__factor__nat,axiom,
    ! [N2: nat] :
      ( ( N2
       != ( one_one @ nat ) )
     => ? [P2: nat] :
          ( ( prime @ P2 )
          & ( dvd_dvd @ nat @ P2 @ N2 ) ) ) ).

% prime_factor_nat
thf(fact_130_prime__dvd__mult__nat,axiom,
    ! [P3: nat,M: nat,N2: nat] :
      ( ( prime @ P3 )
     => ( ( dvd_dvd @ nat @ P3 @ ( times_times @ nat @ M @ N2 ) )
       => ( ( dvd_dvd @ nat @ P3 @ M )
          | ( dvd_dvd @ nat @ P3 @ N2 ) ) ) ) ).

% prime_dvd_mult_nat
thf(fact_131_prime__product,axiom,
    ! [P3: nat,Q2: nat] :
      ( ( prime @ ( times_times @ nat @ P3 @ Q2 ) )
     => ( ( P3
          = ( one_one @ nat ) )
        | ( Q2
          = ( one_one @ nat ) ) ) ) ).

% prime_product
thf(fact_132_bigger__prime,axiom,
    ! [N2: nat] :
    ? [P2: nat] :
      ( ( prime @ P2 )
      & ( ord_less @ nat @ N2 @ P2 ) ) ).

% bigger_prime
thf(fact_133_one__not__prime__nat,axiom,
    ~ ( prime @ ( one_one @ nat ) ) ).

% one_not_prime_nat
thf(fact_134_prime__gt__1__nat,axiom,
    ! [P3: nat] :
      ( ( prime @ P3 )
     => ( ord_less @ nat @ ( one_one @ nat ) @ P3 ) ) ).

% prime_gt_1_nat
thf(fact_135_division__decomp,axiom,
    ! [A: $tType] :
      ( ( semiring_gcd @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( dvd_dvd @ A @ A2 @ ( times_times @ A @ B2 @ C ) )
         => ? [B4: A,C2: A] :
              ( ( A2
                = ( times_times @ A @ B4 @ C2 ) )
              & ( dvd_dvd @ A @ B4 @ B2 )
              & ( dvd_dvd @ A @ C2 @ C ) ) ) ) ).

% division_decomp
thf(fact_136_less__numeral__extra_I4_J,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ~ ( ord_less @ A @ ( one_one @ A ) @ ( one_one @ A ) ) ) ).

% less_numeral_extra(4)
thf(fact_137_in__lset__lmergeI1,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ( member @ A @ X @ ( coinductive_lset @ A @ Xs ) )
         => ( ( coindu63249387sorted @ A @ Xs )
           => ( ~ ( coinductive_lfinite @ A @ Ys )
             => ( ? [X4: A] :
                    ( ( member @ A @ X4 @ ( coinductive_lset @ A @ Ys ) )
                    & ( ord_less_eq @ A @ X @ X4 ) )
               => ( member @ A @ X @ ( coinductive_lset @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ) ) ) ).

% in_lset_lmergeI1
thf(fact_138_in__lset__lmergeI2,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Ys: coinductive_llist @ A,Xs: coinductive_llist @ A] :
          ( ( member @ A @ X @ ( coinductive_lset @ A @ Ys ) )
         => ( ( coindu63249387sorted @ A @ Ys )
           => ( ~ ( coinductive_lfinite @ A @ Xs )
             => ( ? [X4: A] :
                    ( ( member @ A @ X4 @ ( coinductive_lset @ A @ Xs ) )
                    & ( ord_less_eq @ A @ X @ X4 ) )
               => ( member @ A @ X @ ( coinductive_lset @ A @ ( hammin1138290136lmerge @ A @ Xs @ Ys ) ) ) ) ) ) ) ) ).

% in_lset_lmergeI2
thf(fact_139_nat__less__le,axiom,
    ( ( ord_less @ nat )
    = ( ^ [M3: nat,N4: nat] :
          ( ( ord_less_eq @ nat @ M3 @ N4 )
          & ( M3 != N4 ) ) ) ) ).

% nat_less_le
thf(fact_140_less__imp__le__nat,axiom,
    ! [M: nat,N2: nat] :
      ( ( ord_less @ nat @ M @ N2 )
     => ( ord_less_eq @ nat @ M @ N2 ) ) ).

% less_imp_le_nat
thf(fact_141_le__eq__less__or__eq,axiom,
    ( ( ord_less_eq @ nat )
    = ( ^ [M3: nat,N4: nat] :
          ( ( ord_less @ nat @ M3 @ N4 )
          | ( M3 = N4 ) ) ) ) ).

% le_eq_less_or_eq
thf(fact_142_less__or__eq__imp__le,axiom,
    ! [M: nat,N2: nat] :
      ( ( ( ord_less @ nat @ M @ N2 )
        | ( M = N2 ) )
     => ( ord_less_eq @ nat @ M @ N2 ) ) ).

% less_or_eq_imp_le
thf(fact_143_le__neq__implies__less,axiom,
    ! [M: nat,N2: nat] :
      ( ( ord_less_eq @ nat @ M @ N2 )
     => ( ( M != N2 )
       => ( ord_less @ nat @ M @ N2 ) ) ) ).

% le_neq_implies_less
thf(fact_144_less__mono__imp__le__mono,axiom,
    ! [F: nat > nat,I: nat,J: nat] :
      ( ! [I2: nat,J2: nat] :
          ( ( ord_less @ nat @ I2 @ J2 )
         => ( ord_less @ nat @ ( F @ I2 ) @ ( F @ J2 ) ) )
     => ( ( ord_less_eq @ nat @ I @ J )
       => ( ord_less_eq @ nat @ ( F @ I ) @ ( F @ J ) ) ) ) ).

% less_mono_imp_le_mono
thf(fact_145_le__cube,axiom,
    ! [M: nat] : ( ord_less_eq @ nat @ M @ ( times_times @ nat @ M @ ( times_times @ nat @ M @ M ) ) ) ).

% le_cube
thf(fact_146_le__square,axiom,
    ! [M: nat] : ( ord_less_eq @ nat @ M @ ( times_times @ nat @ M @ M ) ) ).

% le_square
thf(fact_147_mult__le__mono,axiom,
    ! [I: nat,J: nat,K2: nat,L: nat] :
      ( ( ord_less_eq @ nat @ I @ J )
     => ( ( ord_less_eq @ nat @ K2 @ L )
       => ( ord_less_eq @ nat @ ( times_times @ nat @ I @ K2 ) @ ( times_times @ nat @ J @ L ) ) ) ) ).

% mult_le_mono
thf(fact_148_mult__le__mono1,axiom,
    ! [I: nat,J: nat,K2: nat] :
      ( ( ord_less_eq @ nat @ I @ J )
     => ( ord_less_eq @ nat @ ( times_times @ nat @ I @ K2 ) @ ( times_times @ nat @ J @ K2 ) ) ) ).

% mult_le_mono1
thf(fact_149_mult__le__mono2,axiom,
    ! [I: nat,J: nat,K2: nat] :
      ( ( ord_less_eq @ nat @ I @ J )
     => ( ord_less_eq @ nat @ ( times_times @ nat @ K2 @ I ) @ ( times_times @ nat @ K2 @ J ) ) ) ).

% mult_le_mono2
thf(fact_150_wlog__linorder__le,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: A > A > $o,B2: A,A2: A] :
          ( ! [A5: A,B5: A] :
              ( ( ord_less_eq @ A @ A5 @ B5 )
             => ( P @ A5 @ B5 ) )
         => ( ( ( P @ B2 @ A2 )
             => ( P @ A2 @ B2 ) )
           => ( P @ A2 @ B2 ) ) ) ) ).

% wlog_linorder_le
thf(fact_151_le__numeral__extra_I4_J,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ( ord_less_eq @ A @ ( one_one @ A ) @ ( one_one @ A ) ) ) ).

% le_numeral_extra(4)
thf(fact_152_prime__ge__1__nat,axiom,
    ! [P3: nat] :
      ( ( prime @ P3 )
     => ( ord_less_eq @ nat @ ( one_one @ nat ) @ P3 ) ) ).

% prime_ge_1_nat
thf(fact_153_gcd__nat_Onot__eq__order__implies__strict,axiom,
    ! [A2: nat,B2: nat] :
      ( ( A2 != B2 )
     => ( ( dvd_dvd @ nat @ A2 @ B2 )
       => ( ( dvd_dvd @ nat @ A2 @ B2 )
          & ( A2 != B2 ) ) ) ) ).

% gcd_nat.not_eq_order_implies_strict
thf(fact_154_gcd__nat_Ostrict__implies__not__eq,axiom,
    ! [A2: nat,B2: nat] :
      ( ( ( dvd_dvd @ nat @ A2 @ B2 )
        & ( A2 != B2 ) )
     => ( A2 != B2 ) ) ).

% gcd_nat.strict_implies_not_eq
thf(fact_155_gcd__nat_Ostrict__implies__order,axiom,
    ! [A2: nat,B2: nat] :
      ( ( ( dvd_dvd @ nat @ A2 @ B2 )
        & ( A2 != B2 ) )
     => ( dvd_dvd @ nat @ A2 @ B2 ) ) ).

% gcd_nat.strict_implies_order
thf(fact_156_gcd__nat_Ostrict__iff__order,axiom,
    ! [A2: nat,B2: nat] :
      ( ( ( dvd_dvd @ nat @ A2 @ B2 )
        & ( A2 != B2 ) )
      = ( ( dvd_dvd @ nat @ A2 @ B2 )
        & ( A2 != B2 ) ) ) ).

% gcd_nat.strict_iff_order
thf(fact_157_gcd__nat_Oorder__iff__strict,axiom,
    ( ( dvd_dvd @ nat )
    = ( ^ [A4: nat,B3: nat] :
          ( ( ( dvd_dvd @ nat @ A4 @ B3 )
            & ( A4 != B3 ) )
          | ( A4 = B3 ) ) ) ) ).

% gcd_nat.order_iff_strict
thf(fact_158_gcd__nat_Ostrict__trans2,axiom,
    ! [A2: nat,B2: nat,C: nat] :
      ( ( ( dvd_dvd @ nat @ A2 @ B2 )
        & ( A2 != B2 ) )
     => ( ( dvd_dvd @ nat @ B2 @ C )
       => ( ( dvd_dvd @ nat @ A2 @ C )
          & ( A2 != C ) ) ) ) ).

% gcd_nat.strict_trans2
thf(fact_159_gcd__nat_Ostrict__trans1,axiom,
    ! [A2: nat,B2: nat,C: nat] :
      ( ( dvd_dvd @ nat @ A2 @ B2 )
     => ( ( ( dvd_dvd @ nat @ B2 @ C )
          & ( B2 != C ) )
       => ( ( dvd_dvd @ nat @ A2 @ C )
          & ( A2 != C ) ) ) ) ).

% gcd_nat.strict_trans1
thf(fact_160_gcd__nat_Ostrict__trans,axiom,
    ! [A2: nat,B2: nat,C: nat] :
      ( ( ( dvd_dvd @ nat @ A2 @ B2 )
        & ( A2 != B2 ) )
     => ( ( ( dvd_dvd @ nat @ B2 @ C )
          & ( B2 != C ) )
       => ( ( dvd_dvd @ nat @ A2 @ C )
          & ( A2 != C ) ) ) ) ).

% gcd_nat.strict_trans
thf(fact_161_gcd__nat_Oantisym,axiom,
    ! [A2: nat,B2: nat] :
      ( ( dvd_dvd @ nat @ A2 @ B2 )
     => ( ( dvd_dvd @ nat @ B2 @ A2 )
       => ( A2 = B2 ) ) ) ).

% gcd_nat.antisym
thf(fact_162_gcd__nat_Oirrefl,axiom,
    ! [A2: nat] :
      ~ ( ( dvd_dvd @ nat @ A2 @ A2 )
        & ( A2 != A2 ) ) ).

% gcd_nat.irrefl
thf(fact_163_gcd__nat_Otrans,axiom,
    ! [A2: nat,B2: nat,C: nat] :
      ( ( dvd_dvd @ nat @ A2 @ B2 )
     => ( ( dvd_dvd @ nat @ B2 @ C )
       => ( dvd_dvd @ nat @ A2 @ C ) ) ) ).

% gcd_nat.trans
thf(fact_164_gcd__nat_Orefl,axiom,
    ! [A2: nat] : ( dvd_dvd @ nat @ A2 @ A2 ) ).

% gcd_nat.refl
thf(fact_165_gcd__nat_Oasym,axiom,
    ! [A2: nat,B2: nat] :
      ( ( ( dvd_dvd @ nat @ A2 @ B2 )
        & ( A2 != B2 ) )
     => ~ ( ( dvd_dvd @ nat @ B2 @ A2 )
          & ( B2 != A2 ) ) ) ).

% gcd_nat.asym
thf(fact_166_order__refl,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A] : ( ord_less_eq @ A @ X @ X ) ) ).

% order_refl
thf(fact_167_minf_I8_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T: A] :
        ? [Z: A] :
        ! [X4: A] :
          ( ( ord_less @ A @ X4 @ Z )
         => ~ ( ord_less_eq @ A @ T @ X4 ) ) ) ).

% minf(8)
thf(fact_168_minf_I6_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T: A] :
        ? [Z: A] :
        ! [X4: A] :
          ( ( ord_less @ A @ X4 @ Z )
         => ( ord_less_eq @ A @ X4 @ T ) ) ) ).

% minf(6)
thf(fact_169_pinf_I8_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T: A] :
        ? [Z: A] :
        ! [X4: A] :
          ( ( ord_less @ A @ Z @ X4 )
         => ( ord_less_eq @ A @ T @ X4 ) ) ) ).

% pinf(8)
thf(fact_170_le__refl,axiom,
    ! [N2: nat] : ( ord_less_eq @ nat @ N2 @ N2 ) ).

% le_refl
thf(fact_171_le__trans,axiom,
    ! [I: nat,J: nat,K2: nat] :
      ( ( ord_less_eq @ nat @ I @ J )
     => ( ( ord_less_eq @ nat @ J @ K2 )
       => ( ord_less_eq @ nat @ I @ K2 ) ) ) ).

% le_trans
thf(fact_172_eq__imp__le,axiom,
    ! [M: nat,N2: nat] :
      ( ( M = N2 )
     => ( ord_less_eq @ nat @ M @ N2 ) ) ).

% eq_imp_le
thf(fact_173_le__antisym,axiom,
    ! [M: nat,N2: nat] :
      ( ( ord_less_eq @ nat @ M @ N2 )
     => ( ( ord_less_eq @ nat @ N2 @ M )
       => ( M = N2 ) ) ) ).

% le_antisym
thf(fact_174_nat__le__linear,axiom,
    ! [M: nat,N2: nat] :
      ( ( ord_less_eq @ nat @ M @ N2 )
      | ( ord_less_eq @ nat @ N2 @ M ) ) ).

% nat_le_linear
thf(fact_175_le__funD,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [F: A > B,G: A > B,X: A] :
          ( ( ord_less_eq @ ( A > B ) @ F @ G )
         => ( ord_less_eq @ B @ ( F @ X ) @ ( G @ X ) ) ) ) ).

% le_funD
thf(fact_176_le__funE,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [F: A > B,G: A > B,X: A] :
          ( ( ord_less_eq @ ( A > B ) @ F @ G )
         => ( ord_less_eq @ B @ ( F @ X ) @ ( G @ X ) ) ) ) ).

% le_funE
thf(fact_177_le__funI,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [F: A > B,G: A > B] :
          ( ! [X3: A] : ( ord_less_eq @ B @ ( F @ X3 ) @ ( G @ X3 ) )
         => ( ord_less_eq @ ( A > B ) @ F @ G ) ) ) ).

% le_funI
thf(fact_178_le__fun__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ( ( ord_less_eq @ ( A > B ) )
        = ( ^ [F2: A > B,G2: A > B] :
            ! [X2: A] : ( ord_less_eq @ B @ ( F2 @ X2 ) @ ( G2 @ X2 ) ) ) ) ) ).

% le_fun_def
thf(fact_179_order__subst1,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( order @ B @ ( type2 @ B ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A2: A,F: B > A,B2: B,C: B] :
          ( ( ord_less_eq @ A @ A2 @ ( F @ B2 ) )
         => ( ( ord_less_eq @ B @ B2 @ C )
           => ( ! [X3: B,Y3: B] :
                  ( ( ord_less_eq @ B @ X3 @ Y3 )
                 => ( ord_less_eq @ A @ ( F @ X3 ) @ ( F @ Y3 ) ) )
             => ( ord_less_eq @ A @ A2 @ ( F @ C ) ) ) ) ) ) ).

% order_subst1
thf(fact_180_order__subst2,axiom,
    ! [A: $tType,C3: $tType] :
      ( ( ( order @ C3 @ ( type2 @ C3 ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A2: A,B2: A,F: A > C3,C: C3] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ C3 @ ( F @ B2 ) @ C )
           => ( ! [X3: A,Y3: A] :
                  ( ( ord_less_eq @ A @ X3 @ Y3 )
                 => ( ord_less_eq @ C3 @ ( F @ X3 ) @ ( F @ Y3 ) ) )
             => ( ord_less_eq @ C3 @ ( F @ A2 ) @ C ) ) ) ) ) ).

% order_subst2
thf(fact_181_ord__eq__le__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B @ ( type2 @ B ) )
        & ( ord @ A @ ( type2 @ A ) ) )
     => ! [A2: A,F: B > A,B2: B,C: B] :
          ( ( A2
            = ( F @ B2 ) )
         => ( ( ord_less_eq @ B @ B2 @ C )
           => ( ! [X3: B,Y3: B] :
                  ( ( ord_less_eq @ B @ X3 @ Y3 )
                 => ( ord_less_eq @ A @ ( F @ X3 ) @ ( F @ Y3 ) ) )
             => ( ord_less_eq @ A @ A2 @ ( F @ C ) ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_182_ord__le__eq__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B @ ( type2 @ B ) )
        & ( ord @ A @ ( type2 @ A ) ) )
     => ! [A2: A,B2: A,F: A > B,C: B] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ( F @ B2 )
              = C )
           => ( ! [X3: A,Y3: A] :
                  ( ( ord_less_eq @ A @ X3 @ Y3 )
                 => ( ord_less_eq @ B @ ( F @ X3 ) @ ( F @ Y3 ) ) )
             => ( ord_less_eq @ B @ ( F @ A2 ) @ C ) ) ) ) ) ).

% ord_le_eq_subst
thf(fact_183_eq__iff,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ( ( ^ [Y4: A,Z2: A] : Y4 = Z2 )
        = ( ^ [X2: A,Y5: A] :
              ( ( ord_less_eq @ A @ X2 @ Y5 )
              & ( ord_less_eq @ A @ Y5 @ X2 ) ) ) ) ) ).

% eq_iff
thf(fact_184_antisym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less_eq @ A @ X @ Y )
         => ( ( ord_less_eq @ A @ Y @ X )
           => ( X = Y ) ) ) ) ).

% antisym
thf(fact_185_linear,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less_eq @ A @ X @ Y )
          | ( ord_less_eq @ A @ Y @ X ) ) ) ).

% linear
thf(fact_186_eq__refl,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( X = Y )
         => ( ord_less_eq @ A @ X @ Y ) ) ) ).

% eq_refl
thf(fact_187_le__cases,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ~ ( ord_less_eq @ A @ X @ Y )
         => ( ord_less_eq @ A @ Y @ X ) ) ) ).

% le_cases
thf(fact_188_order_Otrans,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ B2 @ C )
           => ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).

% order.trans
thf(fact_189_le__cases3,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A,Z3: A] :
          ( ( ( ord_less_eq @ A @ X @ Y )
           => ~ ( ord_less_eq @ A @ Y @ Z3 ) )
         => ( ( ( ord_less_eq @ A @ Y @ X )
             => ~ ( ord_less_eq @ A @ X @ Z3 ) )
           => ( ( ( ord_less_eq @ A @ X @ Z3 )
               => ~ ( ord_less_eq @ A @ Z3 @ Y ) )
             => ( ( ( ord_less_eq @ A @ Z3 @ Y )
                 => ~ ( ord_less_eq @ A @ Y @ X ) )
               => ( ( ( ord_less_eq @ A @ Y @ Z3 )
                   => ~ ( ord_less_eq @ A @ Z3 @ X ) )
                 => ~ ( ( ord_less_eq @ A @ Z3 @ X )
                     => ~ ( ord_less_eq @ A @ X @ Y ) ) ) ) ) ) ) ) ).

% le_cases3
thf(fact_190_antisym__conv,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [Y: A,X: A] :
          ( ( ord_less_eq @ A @ Y @ X )
         => ( ( ord_less_eq @ A @ X @ Y )
            = ( X = Y ) ) ) ) ).

% antisym_conv
thf(fact_191_ord__eq__le__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( A2 = B2 )
         => ( ( ord_less_eq @ A @ B2 @ C )
           => ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).

% ord_eq_le_trans
thf(fact_192_ord__le__eq__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( B2 = C )
           => ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).

% ord_le_eq_trans
thf(fact_193_order__class_Oorder_Oantisym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ B2 @ A2 )
           => ( A2 = B2 ) ) ) ) ).

% order_class.order.antisym
thf(fact_194_order__trans,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A,Z3: A] :
          ( ( ord_less_eq @ A @ X @ Y )
         => ( ( ord_less_eq @ A @ Y @ Z3 )
           => ( ord_less_eq @ A @ X @ Z3 ) ) ) ) ).

% order_trans
thf(fact_195_dual__order_Orefl,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A] : ( ord_less_eq @ A @ A2 @ A2 ) ) ).

% dual_order.refl
thf(fact_196_linorder__wlog,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: A > A > $o,A2: A,B2: A] :
          ( ! [A5: A,B5: A] :
              ( ( ord_less_eq @ A @ A5 @ B5 )
             => ( P @ A5 @ B5 ) )
         => ( ! [A5: A,B5: A] :
                ( ( P @ B5 @ A5 )
               => ( P @ A5 @ B5 ) )
           => ( P @ A2 @ B2 ) ) ) ) ).

% linorder_wlog
thf(fact_197_dual__order_Otrans,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,C: A] :
          ( ( ord_less_eq @ A @ B2 @ A2 )
         => ( ( ord_less_eq @ A @ C @ B2 )
           => ( ord_less_eq @ A @ C @ A2 ) ) ) ) ).

% dual_order.trans
thf(fact_198_dual__order_Oantisym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A] :
          ( ( ord_less_eq @ A @ B2 @ A2 )
         => ( ( ord_less_eq @ A @ A2 @ B2 )
           => ( A2 = B2 ) ) ) ) ).

% dual_order.antisym
thf(fact_199_minf_I11_J,axiom,
    ! [C3: $tType,D2: $tType] :
      ( ( ord @ C3 @ ( type2 @ C3 ) )
     => ! [F3: D2] :
        ? [Z: C3] :
        ! [X4: C3] :
          ( ( ord_less @ C3 @ X4 @ Z )
         => ( F3 = F3 ) ) ) ).

% minf(11)
thf(fact_200_minf_I7_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T: A] :
        ? [Z: A] :
        ! [X4: A] :
          ( ( ord_less @ A @ X4 @ Z )
         => ~ ( ord_less @ A @ T @ X4 ) ) ) ).

% minf(7)
thf(fact_201_minf_I5_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T: A] :
        ? [Z: A] :
        ! [X4: A] :
          ( ( ord_less @ A @ X4 @ Z )
         => ( ord_less @ A @ X4 @ T ) ) ) ).

% minf(5)
thf(fact_202_minf_I4_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T: A] :
        ? [Z: A] :
        ! [X4: A] :
          ( ( ord_less @ A @ X4 @ Z )
         => ( X4 != T ) ) ) ).

% minf(4)
thf(fact_203_minf_I3_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T: A] :
        ? [Z: A] :
        ! [X4: A] :
          ( ( ord_less @ A @ X4 @ Z )
         => ( X4 != T ) ) ) ).

% minf(3)
thf(fact_204_minf_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: A > $o,P5: A > $o,Q: A > $o,Q3: A > $o] :
          ( ? [Z4: A] :
            ! [X3: A] :
              ( ( ord_less @ A @ X3 @ Z4 )
             => ( ( P @ X3 )
                = ( P5 @ X3 ) ) )
         => ( ? [Z4: A] :
              ! [X3: A] :
                ( ( ord_less @ A @ X3 @ Z4 )
               => ( ( Q @ X3 )
                  = ( Q3 @ X3 ) ) )
           => ? [Z: A] :
              ! [X4: A] :
                ( ( ord_less @ A @ X4 @ Z )
               => ( ( ( P @ X4 )
                    | ( Q @ X4 ) )
                  = ( ( P5 @ X4 )
                    | ( Q3 @ X4 ) ) ) ) ) ) ) ).

% minf(2)
thf(fact_205_minf_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: A > $o,P5: A > $o,Q: A > $o,Q3: A > $o] :
          ( ? [Z4: A] :
            ! [X3: A] :
              ( ( ord_less @ A @ X3 @ Z4 )
             => ( ( P @ X3 )
                = ( P5 @ X3 ) ) )
         => ( ? [Z4: A] :
              ! [X3: A] :
                ( ( ord_less @ A @ X3 @ Z4 )
               => ( ( Q @ X3 )
                  = ( Q3 @ X3 ) ) )
           => ? [Z: A] :
              ! [X4: A] :
                ( ( ord_less @ A @ X4 @ Z )
               => ( ( ( P @ X4 )
                    & ( Q @ X4 ) )
                  = ( ( P5 @ X4 )
                    & ( Q3 @ X4 ) ) ) ) ) ) ) ).

% minf(1)
thf(fact_206_pinf_I11_J,axiom,
    ! [C3: $tType,D2: $tType] :
      ( ( ord @ C3 @ ( type2 @ C3 ) )
     => ! [F3: D2] :
        ? [Z: C3] :
        ! [X4: C3] :
          ( ( ord_less @ C3 @ Z @ X4 )
         => ( F3 = F3 ) ) ) ).

% pinf(11)
thf(fact_207_pinf_I7_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T: A] :
        ? [Z: A] :
        ! [X4: A] :
          ( ( ord_less @ A @ Z @ X4 )
         => ( ord_less @ A @ T @ X4 ) ) ) ).

% pinf(7)
thf(fact_208_pinf_I5_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T: A] :
        ? [Z: A] :
        ! [X4: A] :
          ( ( ord_less @ A @ Z @ X4 )
         => ~ ( ord_less @ A @ X4 @ T ) ) ) ).

% pinf(5)
thf(fact_209_pinf_I4_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T: A] :
        ? [Z: A] :
        ! [X4: A] :
          ( ( ord_less @ A @ Z @ X4 )
         => ( X4 != T ) ) ) ).

% pinf(4)
thf(fact_210_pinf_I3_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T: A] :
        ? [Z: A] :
        ! [X4: A] :
          ( ( ord_less @ A @ Z @ X4 )
         => ( X4 != T ) ) ) ).

% pinf(3)
thf(fact_211_pinf_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: A > $o,P5: A > $o,Q: A > $o,Q3: A > $o] :
          ( ? [Z4: A] :
            ! [X3: A] :
              ( ( ord_less @ A @ Z4 @ X3 )
             => ( ( P @ X3 )
                = ( P5 @ X3 ) ) )
         => ( ? [Z4: A] :
              ! [X3: A] :
                ( ( ord_less @ A @ Z4 @ X3 )
               => ( ( Q @ X3 )
                  = ( Q3 @ X3 ) ) )
           => ? [Z: A] :
              ! [X4: A] :
                ( ( ord_less @ A @ Z @ X4 )
               => ( ( ( P @ X4 )
                    | ( Q @ X4 ) )
                  = ( ( P5 @ X4 )
                    | ( Q3 @ X4 ) ) ) ) ) ) ) ).

% pinf(2)
thf(fact_212_pinf_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: A > $o,P5: A > $o,Q: A > $o,Q3: A > $o] :
          ( ? [Z4: A] :
            ! [X3: A] :
              ( ( ord_less @ A @ Z4 @ X3 )
             => ( ( P @ X3 )
                = ( P5 @ X3 ) ) )
         => ( ? [Z4: A] :
              ! [X3: A] :
                ( ( ord_less @ A @ Z4 @ X3 )
               => ( ( Q @ X3 )
                  = ( Q3 @ X3 ) ) )
           => ? [Z: A] :
              ! [X4: A] :
                ( ( ord_less @ A @ Z @ X4 )
               => ( ( ( P @ X4 )
                    & ( Q @ X4 ) )
                  = ( ( P5 @ X4 )
                    & ( Q3 @ X4 ) ) ) ) ) ) ) ).

% pinf(1)
thf(fact_213_ord__eq__less__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B @ ( type2 @ B ) )
        & ( ord @ A @ ( type2 @ A ) ) )
     => ! [A2: A,F: B > A,B2: B,C: B] :
          ( ( A2
            = ( F @ B2 ) )
         => ( ( ord_less @ B @ B2 @ C )
           => ( ! [X3: B,Y3: B] :
                  ( ( ord_less @ B @ X3 @ Y3 )
                 => ( ord_less @ A @ ( F @ X3 ) @ ( F @ Y3 ) ) )
             => ( ord_less @ A @ A2 @ ( F @ C ) ) ) ) ) ) ).

% ord_eq_less_subst
thf(fact_214_ord__less__eq__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B @ ( type2 @ B ) )
        & ( ord @ A @ ( type2 @ A ) ) )
     => ! [A2: A,B2: A,F: A > B,C: B] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ( F @ B2 )
              = C )
           => ( ! [X3: A,Y3: A] :
                  ( ( ord_less @ A @ X3 @ Y3 )
                 => ( ord_less @ B @ ( F @ X3 ) @ ( F @ Y3 ) ) )
             => ( ord_less @ B @ ( F @ A2 ) @ C ) ) ) ) ) ).

% ord_less_eq_subst
thf(fact_215_order__less__subst1,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( order @ B @ ( type2 @ B ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A2: A,F: B > A,B2: B,C: B] :
          ( ( ord_less @ A @ A2 @ ( F @ B2 ) )
         => ( ( ord_less @ B @ B2 @ C )
           => ( ! [X3: B,Y3: B] :
                  ( ( ord_less @ B @ X3 @ Y3 )
                 => ( ord_less @ A @ ( F @ X3 ) @ ( F @ Y3 ) ) )
             => ( ord_less @ A @ A2 @ ( F @ C ) ) ) ) ) ) ).

% order_less_subst1
thf(fact_216_order__less__subst2,axiom,
    ! [A: $tType,C3: $tType] :
      ( ( ( order @ C3 @ ( type2 @ C3 ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A2: A,B2: A,F: A > C3,C: C3] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ C3 @ ( F @ B2 ) @ C )
           => ( ! [X3: A,Y3: A] :
                  ( ( ord_less @ A @ X3 @ Y3 )
                 => ( ord_less @ C3 @ ( F @ X3 ) @ ( F @ Y3 ) ) )
             => ( ord_less @ C3 @ ( F @ A2 ) @ C ) ) ) ) ) ).

% order_less_subst2
thf(fact_217_lt__ex,axiom,
    ! [A: $tType] :
      ( ( no_bot @ A @ ( type2 @ A ) )
     => ! [X: A] :
        ? [Y3: A] : ( ord_less @ A @ Y3 @ X ) ) ).

% lt_ex
thf(fact_218_gt__ex,axiom,
    ! [A: $tType] :
      ( ( no_top @ A @ ( type2 @ A ) )
     => ! [X: A] :
        ? [X1: A] : ( ord_less @ A @ X @ X1 ) ) ).

% gt_ex
thf(fact_219_neqE,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( X != Y )
         => ( ~ ( ord_less @ A @ X @ Y )
           => ( ord_less @ A @ Y @ X ) ) ) ) ).

% neqE
thf(fact_220_neq__iff,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( X != Y )
          = ( ( ord_less @ A @ X @ Y )
            | ( ord_less @ A @ Y @ X ) ) ) ) ).

% neq_iff
thf(fact_221_order_Oasym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ~ ( ord_less @ A @ B2 @ A2 ) ) ) ).

% order.asym
thf(fact_222_dense,axiom,
    ! [A: $tType] :
      ( ( dense_order @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
         => ? [Z: A] :
              ( ( ord_less @ A @ X @ Z )
              & ( ord_less @ A @ Z @ Y ) ) ) ) ).

% dense
thf(fact_223_less__imp__neq,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
         => ( X != Y ) ) ) ).

% less_imp_neq
thf(fact_224_less__asym,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
         => ~ ( ord_less @ A @ Y @ X ) ) ) ).

% less_asym
thf(fact_225_less__asym_H,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ~ ( ord_less @ A @ B2 @ A2 ) ) ) ).

% less_asym'
thf(fact_226_less__trans,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A,Z3: A] :
          ( ( ord_less @ A @ X @ Y )
         => ( ( ord_less @ A @ Y @ Z3 )
           => ( ord_less @ A @ X @ Z3 ) ) ) ) ).

% less_trans
thf(fact_227_less__linear,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
          | ( X = Y )
          | ( ord_less @ A @ Y @ X ) ) ) ).

% less_linear
thf(fact_228_less__irrefl,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A] :
          ~ ( ord_less @ A @ X @ X ) ) ).

% less_irrefl
thf(fact_229_ord__eq__less__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( A2 = B2 )
         => ( ( ord_less @ A @ B2 @ C )
           => ( ord_less @ A @ A2 @ C ) ) ) ) ).

% ord_eq_less_trans
thf(fact_230_ord__less__eq__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( B2 = C )
           => ( ord_less @ A @ A2 @ C ) ) ) ) ).

% ord_less_eq_trans
thf(fact_231_dual__order_Oasym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ~ ( ord_less @ A @ A2 @ B2 ) ) ) ).

% dual_order.asym
thf(fact_232_less__imp__not__eq,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
         => ( X != Y ) ) ) ).

% less_imp_not_eq
thf(fact_233_less__not__sym,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
         => ~ ( ord_less @ A @ Y @ X ) ) ) ).

% less_not_sym
thf(fact_234_less__induct,axiom,
    ! [A: $tType] :
      ( ( wellorder @ A @ ( type2 @ A ) )
     => ! [P: A > $o,A2: A] :
          ( ! [X3: A] :
              ( ! [Y2: A] :
                  ( ( ord_less @ A @ Y2 @ X3 )
                 => ( P @ Y2 ) )
             => ( P @ X3 ) )
         => ( P @ A2 ) ) ) ).

% less_induct
thf(fact_235_antisym__conv3,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [Y: A,X: A] :
          ( ~ ( ord_less @ A @ Y @ X )
         => ( ( ~ ( ord_less @ A @ X @ Y ) )
            = ( X = Y ) ) ) ) ).

% antisym_conv3
thf(fact_236_less__imp__not__eq2,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
         => ( Y != X ) ) ) ).

% less_imp_not_eq2
thf(fact_237_less__imp__triv,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A,P: $o] :
          ( ( ord_less @ A @ X @ Y )
         => ( ( ord_less @ A @ Y @ X )
           => P ) ) ) ).

% less_imp_triv
thf(fact_238_linorder__cases,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ~ ( ord_less @ A @ X @ Y )
         => ( ( X != Y )
           => ( ord_less @ A @ Y @ X ) ) ) ) ).

% linorder_cases
thf(fact_239_dual__order_Oirrefl,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ~ ( ord_less @ A @ A2 @ A2 ) ) ).

% dual_order.irrefl
thf(fact_240_order_Ostrict__trans,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ B2 @ C )
           => ( ord_less @ A @ A2 @ C ) ) ) ) ).

% order.strict_trans
thf(fact_241_less__imp__not__less,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
         => ~ ( ord_less @ A @ Y @ X ) ) ) ).

% less_imp_not_less
thf(fact_242_dual__order_Ostrict__trans,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,C: A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( ord_less @ A @ C @ B2 )
           => ( ord_less @ A @ C @ A2 ) ) ) ) ).

% dual_order.strict_trans
thf(fact_243_not__less__iff__gr__or__eq,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ~ ( ord_less @ A @ X @ Y ) )
          = ( ( ord_less @ A @ Y @ X )
            | ( X = Y ) ) ) ) ).

% not_less_iff_gr_or_eq
thf(fact_244_order_Ostrict__implies__not__eq,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( A2 != B2 ) ) ) ).

% order.strict_implies_not_eq
thf(fact_245_dual__order_Ostrict__implies__not__eq,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( A2 != B2 ) ) ) ).

% dual_order.strict_implies_not_eq
thf(fact_246_order_Onot__eq__order__implies__strict,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( A2 != B2 )
         => ( ( ord_less_eq @ A @ A2 @ B2 )
           => ( ord_less @ A @ A2 @ B2 ) ) ) ) ).

% order.not_eq_order_implies_strict
thf(fact_247_dual__order_Ostrict__implies__order,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ord_less_eq @ A @ B2 @ A2 ) ) ) ).

% dual_order.strict_implies_order
thf(fact_248_dual__order_Ostrict__iff__order,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ( ( ord_less @ A )
        = ( ^ [B3: A,A4: A] :
              ( ( ord_less_eq @ A @ B3 @ A4 )
              & ( A4 != B3 ) ) ) ) ) ).

% dual_order.strict_iff_order
thf(fact_249_dual__order_Oorder__iff__strict,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ( ( ord_less_eq @ A )
        = ( ^ [B3: A,A4: A] :
              ( ( ord_less @ A @ B3 @ A4 )
              | ( A4 = B3 ) ) ) ) ) ).

% dual_order.order_iff_strict
thf(fact_250_order_Ostrict__implies__order,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ord_less_eq @ A @ A2 @ B2 ) ) ) ).

% order.strict_implies_order
thf(fact_251_dense__le__bounded,axiom,
    ! [A: $tType] :
      ( ( dense_linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A,Z3: A] :
          ( ( ord_less @ A @ X @ Y )
         => ( ! [W: A] :
                ( ( ord_less @ A @ X @ W )
               => ( ( ord_less @ A @ W @ Y )
                 => ( ord_less_eq @ A @ W @ Z3 ) ) )
           => ( ord_less_eq @ A @ Y @ Z3 ) ) ) ) ).

% dense_le_bounded
thf(fact_252_dense__ge__bounded,axiom,
    ! [A: $tType] :
      ( ( dense_linorder @ A @ ( type2 @ A ) )
     => ! [Z3: A,X: A,Y: A] :
          ( ( ord_less @ A @ Z3 @ X )
         => ( ! [W: A] :
                ( ( ord_less @ A @ Z3 @ W )
               => ( ( ord_less @ A @ W @ X )
                 => ( ord_less_eq @ A @ Y @ W ) ) )
           => ( ord_less_eq @ A @ Y @ Z3 ) ) ) ) ).

% dense_ge_bounded

%----Type constructors (26)
thf(tcon_fun___Orderings_Opreorder,axiom,
    ! [A6: $tType,A7: $tType] :
      ( ( preorder @ A7 @ ( type2 @ A7 ) )
     => ( preorder @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).

thf(tcon_fun___Orderings_Oorder,axiom,
    ! [A6: $tType,A7: $tType] :
      ( ( order @ A7 @ ( type2 @ A7 ) )
     => ( order @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).

thf(tcon_fun___Orderings_Oord,axiom,
    ! [A6: $tType,A7: $tType] :
      ( ( ord @ A7 @ ( type2 @ A7 ) )
     => ( ord @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).

thf(tcon_Nat_Onat___Rings_Olinordered__semidom,axiom,
    linordered_semidom @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Oab__semigroup__mult,axiom,
    ab_semigroup_mult @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Oalgebraic__semidom,axiom,
    algebraic_semidom @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Ocomm__monoid__mult,axiom,
    comm_monoid_mult @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Ocomm__semiring__1,axiom,
    comm_semiring_1 @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Osemigroup__mult,axiom,
    semigroup_mult @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Owellorder,axiom,
    wellorder @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Opreorder_1,axiom,
    preorder @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Olinorder,axiom,
    linorder @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Omonoid__mult,axiom,
    monoid_mult @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Ono__top,axiom,
    no_top @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___GCD_Osemiring__gcd,axiom,
    semiring_gcd @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Oorder_2,axiom,
    order @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Oord_3,axiom,
    ord @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Oone,axiom,
    one @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Odvd,axiom,
    dvd @ nat @ ( type2 @ nat ) ).

thf(tcon_Set_Oset___Orderings_Opreorder_4,axiom,
    ! [A6: $tType] : ( preorder @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Oorder_5,axiom,
    ! [A6: $tType] : ( order @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Oord_6,axiom,
    ! [A6: $tType] : ( ord @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).

thf(tcon_HOL_Obool___Orderings_Opreorder_7,axiom,
    preorder @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Olinorder_8,axiom,
    linorder @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Oorder_9,axiom,
    order @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Oord_10,axiom,
    ord @ $o @ ( type2 @ $o ) ).

%----Conjectures (1)
thf(conj_0,conjecture,
    member @ nat @ n2 @ ( coinductive_lset @ nat @ hammin2015774020amming ) ).

%------------------------------------------------------------------------------